package com.mrobuy.jdvc.service;

import com.mrobuy.jdvc.Result;
import com.mrobuy.jdvc.entity.VCProduct;
import com.mrobuy.jdvc.entity.VCShelvesItem;
import com.mrobuy.jdvc.entity.VCShelvesTask;
import com.mrobuy.jdvc.model.ItemCondition;
import com.mrobuy.util.Pagination;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

public interface ShelvesService {

    Result skuimport(String taskid, String fromid);

    SseEmitter buildSseEmitter(String id) throws IOException;

    void shelves(String[] ids);

    Pagination loadTasks(int start, int length, VCShelvesTask condition);

    Result insert(VCShelvesTask record);

    VCShelvesTask loadTask(String id);

    void exportBrandcateMapping(OutputStream ouputStream, VCShelvesTask task);

    void importCateBrandMapping(InputStream inputStream, String id) throws Exception;

    void exportAttrSetting(OutputStream ouputStream, VCShelvesTask task);

    void importAttrSetting(InputStream inputStream, String id, String originalFilename) throws Exception;

    Pagination loadItems(int start, int length, ItemCondition condition);

    void shelves(List<VCShelvesItem> value) throws Exception;

    void updateShelves(VCProduct product) throws Exception;
}
